﻿/*Universidad del Valle de Guatemala
 * Algoritmos y estructura de datos
 * hoja de trabajo No.2
 * Waleska Marroquín
 * Carné:11041
 * Fecha: 17 de julio del 2012
 */



/*
 * Decaración de las librerias 
 */
import java.io.*;
import javax.swing.*; 
import java.util.Scanner.*;
import java.util.*;

/**
 *
 * @author wale
 */
public class Hoja_2 {
/**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Pila <Integer> Stack = new Pila <Integer>();
        Scanner entrada = new Scanner(System.in);
        System.out.println("---------------Bienvenido------------------");
        System.out.println("");
        System.out.println("-------------------------------------------"); 
        System.out.println("|Ingrese una expresión en formato postfix:|");
        System.out.println("-------------------------------------------");
        
        /*
         * Declaración de variables
         */
        String car_in; // lo que ingresara  
        int num1;
        int num2;
        int res;
        char signo;

        car_in = entrada.nextLine();
        String[] cadena = car_in.split(" ");
        
        for (int i = 0; i<cadena.length; i++){ // ciclo para la longitud de cadena
           
         try{   
         int numero1 = Integer.parseInt (cadena[i]);// convertir los datos a enteros 
         Stack.push(numero1);
         } catch (NumberFormatException ex)
         {    
            if(car_in == "+")
                {
                    num1=Stack.pop();
                    num2=Stack.pop();
                    res= num1+num2;
                     Stack.push(res);
                }
            if(car_in == "-")
                {
                    num1=Stack.pop();
                    num2=Stack.pop();
                    res= num1-num2;
                    Stack.push(res);   
                }
            if(car_in == "*")
                {
                    num1=Stack.pop();
                    num2=Stack.pop();
                    res= num1*num2;
                    Stack.push(res); 
                }
           if(car_in == "/")
                {
                    num1=Stack.pop();
                    num2=Stack.pop();
                    res= num1/num2;
                    Stack.push(res); 
                 }
        }
          }
        /*
         * Despliega el resultado almacenado en la Pila 
         */
        System.out.println("----------------------------");
        System.out.println("El resultado es:  " + Stack.peek());
        System.out.println("----------------------------");
       
        // TODO code application logic here
 
    }
    

    
}
// Fin
